/**
 * 主应用逻辑
 * 负责页面导航和应用初始化
 */

// 应用管理类
class AppManager {
    constructor() {
        this.modules = {
            student: document.getElementById('student-module'),
            attendance: document.getElementById('attendance-module'),
            statistics: document.getElementById('statistics-module')
        };

        this.navItems = {
            student: document.getElementById('nav-student'),
            attendance: document.getElementById('nav-attendance'),
            statistics: document.getElementById('nav-statistics')
        };

        this.currentModule = 'student';
        this.initEventListeners();
    }

    // 显示指定模块
    showModule(moduleName) {
        // 隐藏所有模块
        Object.values(this.modules).forEach(module => {
            module.style.display = 'none';
        });

        // 移除所有导航项的激活状态
        Object.values(this.navItems).forEach(navItem => {
            navItem.classList.remove('active');
        });

        // 显示选定的模块
        this.modules[moduleName].style.display = 'block';
        this.navItems[moduleName].classList.add('active');
        this.currentModule = moduleName;

        // 如果切换到点名模块，刷新点名列表
        if (moduleName === 'attendance') {
            attendanceManager.renderAttendanceList();
        }

        // 如果切换到统计模块，刷新统计信息
        if (moduleName === 'statistics') {
            // 设置默认日期为今天并查询
            document.getElementById('search-date').value = attendanceManager.currentDate;
            attendanceManager.queryAttendanceByDate(attendanceManager.currentDate);
            attendanceManager.renderAttendanceStatistics();
        }
    }

    // 初始化事件监听
    initEventListeners() {
        // 导航项点击事件
        this.navItems.student.addEventListener('click', (e) => {
            e.preventDefault();
            this.showModule('student');
        });

        this.navItems.attendance.addEventListener('click', (e) => {
            e.preventDefault();
            this.showModule('attendance');
        });

        this.navItems.statistics.addEventListener('click', (e) => {
            e.preventDefault();
            this.showModule('statistics');
        });
    }

    // 初始化应用
    init() {
        // 默认显示学生模块
        this.showModule('student');

        console.log('学生点名系统初始化完成');
    }
}

// 当DOM加载完成后初始化应用
document.addEventListener('DOMContentLoaded', () => {
    // 创建应用管理实例
    const app = new AppManager();
    app.init();

    // 添加一些测试数据（仅在首次加载时）
    if (!localStorage.getItem('app_initialized')) {
        // 添加示例学生
        studentManager.addStudent('2023001', '张三');
        studentManager.addStudent('2023002', '李四');
        studentManager.addStudent('2023003', '王五');
        studentManager.addStudent('2023004', '赵六');
        studentManager.addStudent('2023005', '钱七');

        // 添加示例点名记录（过去几天的记录）
        const today = new Date();

        // 创建过去5天的点名记录
        for (let i = 0; i < 5; i++) {
            const date = new Date(today);
            date.setDate(date.getDate() - i);
            const dateString = attendanceManager.formatDate(date);

            // 保存当前日期
            const currentDate = attendanceManager.currentDate;
            // 临时设置日期为过去的日期
            attendanceManager.currentDate = dateString;

            // 随机生成点名状态
            const statuses = ['present', 'late', 'absent', 'early-leave'];

            // 为每个学生添加随机点名记录
            studentManager.getAllStudents().forEach(student => {
                // 随机选择一个状态，但让"出勤"的概率更高
                const randomStatus = Math.random() < 0.7 ? 'present' : statuses[Math.floor(Math.random() * statuses.length)];
                attendanceManager.addAttendanceRecord(student.id, randomStatus);
            });

            // 恢复当前日期
            attendanceManager.currentDate = currentDate;
        }

        // 标记应用已初始化
        localStorage.setItem('app_initialized', 'true');
    }
});